Ваше приложение должно быть совместимо с параметром Высокая контрастность, который указывает на то, что пользователю необходима более высокая степень контрастности для улучшения четкости экрана. Стандартные элементы управления, предоставляемые USER32.DLL и COMCTL32.DLL, автоматически поддерживают все необходимые настройки. Приложения должны осуществлять поддержку таких настроек только при создании нестандартных классов или элементов управления окна, а также при изменении обычного поведения стандартных окон и элементов управления.
Приложения могут определять значение параметра Высокая контрастность с помощью функции SystemParametersInfo с константой SPI_GETHIGHCONTRAST. Если этот параметр установлен, то приложение должно:
Отображать все меню и диалоговые окна, используя цветовую схему, возвращаемую функцией GetSysColor. Это относится также ко всем остальным элементам пользовательского интерфейса, предназначенных для настройки цветов в пользовательском интерфейсе приложения.
Разрешать пользователям изменять цвета, используемые для отображения информации в окнах приложений.
Это должно производиться путем изменения настроек отображения, которые отменяют цвета, обычно используемые приложением или указанные в документе, и не должно изменять содержание документа или влиять на других пользователей.
Наилучшим способом является использование соответствующих цветов, возвращаемых функцией GetSysColor, но приложение также может обеспечивать собственные настройки экрана.
Всегда выделяйте объекты переднего плана цветами, определенными как цвета переднего плана и заполняйте фон соответствующими фоновыми цветами. Это требование не зависит от того, выбраны ли цвета с помощью функции GetSysColor или являются собственными настройками приложения. Например, все объекты, которые нарисованы цветом текста окна (COLOR_WINDOWTEXT), должны быть нарисованы на фоновом цвете окна (COLOR_WINDOW), а все объекты, нарисованные с использованием цвета выделенного текста (COLOR_HIGHLIGHTTEXT), должно быть нарисованы на выделенном фоне (COLOR_HIGHLIGHT).
Гарантировать, что вся информация, передаваемая цветом, передается также и другими способами, например звуком или видом экрана, потому что пользователь мог выбрать черно-белую цветовую схему.
Избегать рисунков и узоров, нарисованных на фоне текста, и гарантировать, что любая важная информация, представленная таким фоном доступна другими средствами.
Замечание: Пользователи могут изменять режим высокой контрастности из раздела Специальные возможности Панели управления, выбрав закладку Экран и установив флажок Высокая контрастность.
Пользователи могут изменять значения, возвращаемые функцией GetSysColor, с помощью раздела Экран Панели управления, выбрав закладку Оформление.
Режим высокой контрастности может использоваться с любой схемой оформления, причем выбор схемы в разделе Экран Панели управления не меняет значение настройки Высокая контрастность.
Исключение: Некоторые функции приложения могут не подчиняться требованиям Высокой контрастности, если использование цвета существенно и необходимо для этих функций. Примерами таких функций являются:
Палитры и образцы, где пользователь выбирает цвет из набора отображаемых цветов. В этом случае приложение может отображать цвета, но должно также предоставлять текстовое описание, например, название цвета (светло-голубой) или численное значение (RGB 0,255,255).
Анимация, видео или графические изображения, когда содержащаяся в них информация может быть получена другими способами.
Приложение целиком может быть исключением, только если оно не имеет смысла без использования цвета. Например, программы для рисования являются исключением, а чертежные программы, где пользователь работает с фигурами – нет.
Справочные и образовательные программы не являются исключениями.
Если основные функции приложения поддерживают режим Высокой контрастности, исключения могут быть сделаны для функций, несущественных для работы с программой.
Вопрос, может ли приложение считаться исключением, решается в каждом отдельном случае. Вы должны подробно описать все исключения в Анкете поставщика.